package com.wman.learn.funcation

/**
 * @ProjectName: wman
 * @Package: com.wman
 * @ClassName: Test
 * @Description: 参数是函数  高阶函数
 * @Author: wman
 * @CreateDate: 2019/11/13 15:04
 * @UpdateUser: 更新者
 * @UpdateDate: 2019/11/13 15:04
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */

inline fun Kotlin08IsOnlyIf(isDebug: Boolean, block: () -> Unit) {
    if (isDebug) {
        block()
    }
}

/**
 * 高阶函数: 函数的参数是lambda或是一个函数
 * inline 关键字修饰高阶函数
 */
fun main(args: Array<String>) {
    //lambda作为最后一个参数时候，是可以卸载括号外面的
//    Kotlin08IsOnlyIf(true, {
//        println("调试模式，日志打印")
//    })
    Kotlin08IsOnlyIf(true) {
        println("调试模式，日志打印")
    }

    var runnable = Runnable {
        println("Runnable::Run")
    }

    var funcation: () -> Unit
    funcation = runnable::run

    Kotlin08IsOnlyIf(true, funcation)
}

